
https://leetcode.cn/problems/binary-tree-zigzag-level-order-traversal/description/
///**
// * Definition for a binary tree node.
// * struct TreeNode {
// *     int val;
// *     TreeNode *left;
// *     TreeNode *right;
// *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
// *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
// *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
// * };
// */
//class Solution {
//public:
//    vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
//        if (!root) {
//            return vector<vector<int>>();
//        }
//        queue<TreeNode*> st;
//        st.push(root);
//        vector<vector<int>> vv;
//        int i = 0;
//        while (!st.empty()) {
//            vector<int> v;
//            int sum = st.size();
//            while (sum--) {
//                TreeNode* cur = st.front();
//                st.pop();
//                v.push_back(cur->val);
//                if (cur->left) {
//                    st.push(cur->left);
//                }
//                if (cur->right) {
//                    st.push(cur->right);
//                }
//            }
//            if (i % 2 == 1) {
//                reverse(v.begin(), v.end());
//            }
//            i++;
//            i %= 2;
//            vv.push_back(v);
//        }
//        return vv;
//    }
//};
//


https://leetcode.cn/problems/n-ary-tree-level-order-traversal/description/
///*
//// Definition for a Node.
//class Node {
//public:
//    int val;
//    vector<Node*> children;
//
//    Node() {}
//
//    Node(int _val) {
//        val = _val;
//    }
//
//    Node(int _val, vector<Node*> _children) {
//        val = _val;
//        children = _children;
//    }
//};
//*/
//
//class Solution {
//public:
//    vector<vector<int>> levelOrder(Node* root) {
//        if (!root) {
//            return vector<vector<int>>();
//        }
//
//        queue<Node*> qu;
//        qu.push(root);
//
//        vector<vector<int>> vv;
//        while (!qu.empty()) {
//            int sum = qu.size();
//            vector<int> v;
//            while (sum--) {
//
//                Node* cur = qu.front();
//                qu.pop();
//                v.push_back(cur->val);
//                for (Node* x : cur->children) {
//                    qu.push(x);
//                }
//            }
//            vv.push_back(v);
//        }
//        return vv;
//    }
//};